import java.lang.reflect.Field;

/**
 * Created with IntelliJ IDEA.
 * User: happyiu
 * Date: 2021-12-05
 * Time: 19:25
 * Description:
 */
public class TestDemo {

    public static class SystemUtil{
        public static boolean isAdmin(String userId){
            return userId.toLowerCase()=="admin";
        }

        public static void main(String[] args){
            System.out.println(isAdmin("Admin"));
        }
    }

    public static void main8(String[] args) {
        String str = "hello" ;
        for(int x = 0; x < 1000; x++) {
            str += x ;
        }
        System.out.println(str);
    }



    public static void main6(String[] args) throws NoSuchFieldException, IllegalAccessException {
        String str = "Hello";

        // 获取 String 类中的 value 字段. 这个 value 和 String 源码中的 value 是匹配的.
        Field valueField = String.class.getDeclaredField("value");
        // 将这个字段的访问属性设为 true
        valueField.setAccessible(true);
        // 把 str 中的 value 属性获取到.
        char[] value = (char[]) valueField.get(str);
        // 修改 value 的值


        value[0] = 'h';
        System.out.println(str);

        //打印hello

    }

    public static void main5(String[] args) {
        String str = "hello" ;
        str = str + " world" ;
        str += "!!!" ;
        System.out.println(str);
        // 执行结果hello world!!!
    }


    public static void main4(String[] args) {
        String str = null;
        // 方式一
        System.out.println(str.equals("Hello"));  // 执行结果 抛出 java.lang.NullPointerException 异常
        // 方式二
        System.out.println("Hello".equals(str));  // 执行结果 false
    }


    public static void main2(String[] args) {
        String str = new String("Hello");
        // 方式一
        System.out.println(str.equals("Hello"));
        // 方式二
        System.out.println("Hello".equals(str));
    }



    public static void main1(String[] args) {
        String str1 = new String("Hello");
        String str2 = new String("Hello");
        System.out.println(str1.equals(str2));
        // System.out.println(str2.equals(str1)); // 或者这样写也行
        // 执行结果true
    }

}
